﻿using Microsoft.EntityFrameworkCore;
using Volo.Abp.AuditLogging.EntityFrameworkCore;
using Volo.Abp.Data;
using Volo.Abp.EntityFrameworkCore;

namespace SmartHotel.EntityFrameworkCore;

[ConnectionStringName("Default")]
public class SmartHotelDbContext :
    AbpDbContext<SmartHotelDbContext>
    
{
    /* Add DbSet properties for your Aggregate Roots / Entities here. */
    /// <summary>
    /// 用户表
    /// </summary>
    public DbSet<SmartHotel_UserTable> SmartHotel_UserTable { get; set; }
    /// <summary>
    /// 角色表
    /// </summary>
    public DbSet<RoleTable> RoleTable { get; set; }
    /// <summary>
    /// 菜单表
    /// </summary>
    public DbSet<MenuTable> MenuTable { get; set; }
    /// <summary>
    /// 用户角色表
    /// </summary>
    public DbSet<UserRoleTable> UserRoleTable { get; set; }
    /// <summary>
    /// 角色菜单表
    /// </summary>
    public DbSet<RoleMenu> RoleMenuTable { get; set; }
    /// <summary>
    /// 等级
    /// </summary>
    public DbSet<SmartHotel_Grade> SmartHotel_Grade { get; set; }
    /// <summary>
    /// 用户会员表
    /// </summary>
    public DbSet<UserVIPTable> UserVIPTable { get; set; }
    /// <summary>
    /// 会员登记表
    /// </summary>
    public DbSet<VIPGradeTable> VIPGradeTable { get; set; }
    /// <summary>
    /// 房型表
    /// </summary>
    public DbSet<SmartHotel_HouseTable> SmartHotel_HouseTable { get; set; }
    /// <summary>
    /// 房号表
    /// </summary>
    public DbSet<SmartHotel_RoomNumberTable> SmartHotel_RoomNumberTable { get; set; }

    /// <summary>
    /// 房态 入住表
    /// </summary>
    public DbSet<SmartHotel_HouseState> SmartHotel_HouseState { get; set; }

    /// <summary>
    /// 权益规则表
    /// </summary>
    public DbSet<EquityRoleTable> EquityRoleTable { get; set; }

    /// <summary>
    /// 权益表
    /// </summary>
    public DbSet<EquityTable> EquityTable { get; set; }

    /// <summary>
    /// 等级权益表
    /// </summary>
    public DbSet<GreadEquityTable> GreadEquityTable { get; set; }

    /// <summary>
    /// 规则表（订房折扣）
    /// </summary>
    public DbSet<RolelistTable> RolelistTable { get; set; }

    /// <summary>
    /// 住宿记录表
    /// </summary>
    public DbSet<SmartHote_StayrecordTable> SmartHote_StayrecordTable { get; set; }

    /// <summary>
    /// 预定入住
    /// </summary>
    public DbSet<SmartHotel_Check> SmartHotel_Check { get; set; }

    /// <summary>
    /// 预定入住 两个一模一样
    /// </summary>
    public DbSet<SmartHotel_CheckInTable> SmartHotel_CheckInTable { get; set; }


    /// <summary>
    /// 预定入住表
    /// </summary>
    public DbSet<SmartHotel_CheckTable> SmartHotel_CheckTable { get; set; }

    /// <summary>
    /// 消费表
    /// </summary>
    public DbSet<SmartHotel_ConsumeTable> SmartHotel_ConsumeTable { get; set; }

    /// <summary>
    /// 房型房号表
    /// </summary>
    public DbSet<SmartHotel_HouseRoom> SmartHotel_HouseRoom { get; set; }


    /// <summary>
    /// 标签表
    /// </summary>
    public DbSet<SmartHotel_LableTable> SmartHotel_LableTable { get; set; }

    /// <summary>
    /// 充值表
    /// </summary>
    public DbSet<SmartHotel_Recharge> SmartHotel_Recharge { get; set; }

    /// <summary>
    /// 订房订单
    /// </summary>
    public DbSet<SmartHotel_RoomOrderTable> SmartHotel_RoomOrderTable { get; set; }

    /// <summary>
    /// 用户消费表
    /// </summary>
    public DbSet<SmartHotel_UserConsumeTable> SmartHotel_UserConsumeTable { get; set; }

    /// <summary>
    /// 用户标签表
    /// </summary>
    public DbSet<SmartHotel_UserLabel> SmartHotel_UserLabel { get; set; }

    /// <summary>
    /// 用户充值表
    /// </summary>
    public DbSet<SmartHotel_UserRechargeTable> SmartHotel_UserRechargeTable { get; set; }

    /// <summary>
    /// 会员表
    /// </summary>
    public DbSet<SmartHotel_VIPTable> SmartHotel_VIPTable { get; set; }
    /// <summary>
    /// 标签表
    /// </summary>
    public DbSet<SmartHotel_TagTable> SmartHotel_TagTable { get; set; }

    /// <summary>
    /// 房价表
    /// </summary>
    public DbSet<HousingPriceTable> HousingPriceTables { get; set; }
    /// <summary>
    /// 住宿设置
    /// </summary>
    public DbSet<AccommodationSettingTable> AccommodationSettings { get; set; }
    public SmartHotelDbContext(DbContextOptions<SmartHotelDbContext> options)
        : base(options)
    {

    }

    protected override void OnModelCreating(ModelBuilder builder)
    {
        base.OnModelCreating(builder);

        /* Include modules to your migration db context */

        builder.ConfigureAuditLogging();

        /* Configure your own tables/entities inside here */

    }
}
